//
//  HMEmoticonPackageModel.swift
//  表情键盘
//
//  Created by Apple on 16/7/28.
//  Copyright © 2016年 Apple. All rights reserved.
//

import UIKit

/// 表情包模型, 管理一组表情模型, 一个文件夹里面就是一组表情
class HMEmoticonPackageModel: NSObject {
    /// 表情包文件夹名称
    var id: String
    
    /// 表情包名称
    var group_name_cn: String
    
    /// 一组里面所有 表情模型 数组
    var emoticons: [HMEmoticonModel]
    
    /// 拆分成多页,所有页表情数据
    var allPageEmoticons: [[HMEmoticonModel]] = [[HMEmoticonModel]]()
    
    init(id: String, group_name_cn: String, emoticons: [HMEmoticonModel]) {
        self.id = id
        self.group_name_cn = group_name_cn
        self.emoticons = emoticons
        
        super.init()
        self.splieEmoitcons()
    }
    
    /// 将一组表情拆分成多页
    private func splieEmoitcons(){
        // 计算总共有几页
        let pageCount = (emoticons.count + HMEmoticonNumberOfPage - 1) / HMEmoticonNumberOfPage
        
        if pageCount == 0 {
            // 一页都没有,搞一页空的数据
            let pageEmoticon = [HMEmoticonModel]()
            
            allPageEmoticons.append(pageEmoticon)
        }
        
        // 有很多页数据
        for i in 0..<pageCount {
            // 遍历每一页,拆分每一页数据
            let location = i * HMEmoticonNumberOfPage
            var length = HMEmoticonNumberOfPage
            
            // 最后一页可能不够20个
            if location + length > emoticons.count {
                length = emoticons.count - location
            }
            
            let range = NSRange(location: location, length: length)
            
            // 去所有数据中截取某一页数据
            let pageEmoticons = (emoticons as NSArray).subarrayWithRange(range) as! [HMEmoticonModel]
            
            allPageEmoticons.append(pageEmoticons)
        }
    }
    
    // 对象打印
    override var description: String {
        get {
            return "\n\n表情包模型: id: \(id), group_name_cn: \(group_name_cn), allPageEmoticons: \(allPageEmoticons)"
        }
    }
}
